package cn.donting.jme.edit.ex.imp.auto;

import cn.donting.jme.edit.attribute.Attribute;
import cn.donting.jme.edit.attribute.StringAttribute;
import cn.donting.jme.edit.attribute.annotation.Ignore;
import lombok.extern.slf4j.Slf4j;

import java.lang.reflect.Field;

@Slf4j
public class StringAutoAttributeLoader extends AbsAutoAttributeLoader {

    @Override
    public Attribute getAttribute(Field field, Object obj) {
        StringAttribute stringAttribute = new StringAttribute();
        stringAttribute.setTitle(getTitle(field));
        try {

            Object value = field.get(obj);
            stringAttribute.setValue((String) value);

        } catch (IllegalAccessException e) {
            log.error(e.getMessage(), e);
            return null;
        }
        return stringAttribute;
    }

    @Override
    public boolean isLoad(Field field, Object obj) {
        if (field.getAnnotation(Ignore.class) != null) {
            return false;
        }
        return field.getType().equals(String.class);
    }
}
